package secondStage.part6.方法引用类.方法引用;

/**
 * @ClassName: [PrintableDemo]
 * @Description: 方法引用
 * @Author: [黄劲松]
 * @CreateDate: [2021-04-14]
 * @Version: [v1.0]
 */
/*
需求:
1:定义一个接口(Printable):里面定义-一个抽象方法: void printString(String s);
2:定义一个测试类(PrintableDemo)，在测试类中提供两个方法
一个方法是: usePrintable(Printable p)
一个方法是主方法，在主方法中调用usePrintable方法
 */
public class PrintableDemo {
    public static void main(String[] args) {
        //Lambda表达式调用方法
        /*usePrintable((String s)->{
            System.out.println(s);
        });*/
        //进一步优化
        usePrintable(s-> System.out.println(s));
        System.out.println("------------");

        //方法引用服  ::
        usePrintable(System.out::println);
        //可推导的就是可以省略的

    }
    private static void usePrintable(Printable p){
        p.printString("爱生活爱Java");
    }
}
